home *** CD-ROM | disk | FTP | other *** search
/ EuroCD 3 / EuroCD 3.iso / Communication / Citadel_BBS / Docs / citadel.doc < prev    next >
Text File  |  1998-06-24  |  79KB  |  1,689 lines

  1. Document Citadel.Guide 
  2. @REMARK : Citadel.guide 1.0 (27.11.94) 
  3. 1. MAIN        
  4.  
  5.       The documentation  contained  is  a  collection  of  information
  6.  based  on  the  original  Citadel  86  documentation by Hue, JR.  The
  7.  mistakes are mine.  
  8.  
  9.       It is  pretty much a complete reference manual and every attempt
  10.  is  being  made  to  make  this  a  complete  manual with all details
  11.  explained  so  that  even the most novice of users can understand how
  12.  to  setup  and  run  a bbs.  The most important thing is to read this
  13.  documentation and give it a try! 
  14. 2. Citadel History       
  15.  
  16.       What is  Citadel?  Citadel  is  a Freeware project.  The source,
  17.  executables  and  all  the documentation are available for no cost to
  18.  you.  If you paid for this, someone is ripping you off.  
  19.  
  20.       Citadel was  written in mid-December 1981 by CrT.  Miraculously,
  21.  it  ran  three  days  unattended  over  New  Year's,  collecting some
  22.  remarkably  favorable  reactions.   During  the months that it ran at
  23.  633-3282  (ODD-DATA),  Citadel  became one of the more popular BBs in
  24.  town,  and  there  was  some  disappointment  when a hardware failure
  25.  forced  the  system down in February of 1982.  But in January CrT had
  26.  published  the  source  code  in  BDS  C,  putting  it  in the public
  27.  domain.  
  28.  
  29.       David Mitchell  brought  up  the next incarnation of the Citadel
  30.  program  in  April  of  1982, running on hardware provided by Richard
  31.  Knox.   Called  the  Island  Communication  System,  it is located on
  32.  Bainbridge  Island  in  Puget  Sound.  ICS has about 30 regular users
  33.  and  about  120  log  entries.   Newcomers find it easy to learn, and
  34.  often  leave  messages praising it.  Some of the system's daily users
  35.  are in Boston.  
  36.  
  37.       Citadel is   descended   from   DandD.pas,   an  adventure  game
  38.  editor/driver.   It  is  arranged as a series of rooms, starting with
  39.  the  LOBBY.   In  each  room  the user can read existing messages and
  40.  leave  more.   The  system  was  brought  up  with only one room, the
  41.  LOBBY.   Additional  rooms were created by the users, with room names
  42.  appropriate to the topics covered.  
  43.  
  44.       Environment:  Citadel  has  had  a checkered past.  It first ran
  45.  on  a  64K  Heath  H89  with Magnolia CP/M, Hayes Smartmodem (plus an
  46.  acoustic on another port) and BDS C V1.32.  
  47.  
  48.       As time  went  on,  Citadel  was ported to the Amiga, Atari, and
  49.  even  the  MAC.   Citadel runs on many platforms and since the source
  50.  is available will probably run on most future ones too.  
  51. 3. Citadel        
  52.  
  53.       Citadel(also know  as  Amiga  Citadel,  Citadel 68K) is a single
  54.  user  BBS  program.   It is a direct decendant of the 3.48 Citadel 86
  55.  by  Hue,  JR in Minnesota.  Citadel is able to run on any Amiga model
  56.  and  under  any  OS  from  1.2 to the latest.  The Amiga Citadel is a
  57.  direct  port  from  the  IBM Citadel 86 by Hue Jr.  It originally was
  58.  done  by Jay Johnston, who did not have the time to continue it so I,
  59.  Tony Preston now maintain it.  
  60. 3.1. Support Systems       
  61.  
  62.       Probably the  hardest  part  of  running  a  Citadel  is getting
  63.  started.   Citadel is not the most common of BBS programs even though
  64.  it is free.  
  65.  
  66.       You should  be  able  to  read  this  document  and  setup  your
  67.  configuration  file,  run  `CONFG'  and  then startup the BBS with no
  68.  problems.   Since  this rarely happens and having a helping hand from
  69.  someone  that  has  already  done  what you are trying to do can make
  70.  things  easier,  you  might want to try one of these three places for
  71.  help and information.  
  72.  
  73.       The first  is  The  Amiga  Zone,  my  BBS(609-953-8159).   It is
  74.  available  24  hours  and is where you will find the most support and
  75.  help.   I  will  often  chat with people that call for help and alway
  76.  try  to  answer  mail messages promptly.  Since calling long distance
  77.  may  not  be  an option for you, check around in your area and see if
  78.  you  can  find  a local Citadel where you can take major advantage of
  79.  the  networking  features  built into Citadel!  The `C86Net' contains
  80.  several  support  rooms where you can post your questions and usually
  81.  get  quick  answers.  These rooms are "Citadel 68K" and "Sysop Only".
  82.  If  your  local sysop will let you have some Long Distance credit you
  83.  can  send  me  domain  mail at "tony preston@The Amiga Zone.NJ".  You
  84.  will  learn  more  about  domain mail later.  There are many Citadels
  85.  active  on  the network so you might check the `BBS List' included in
  86.  this  document  to see if one is local to you.  finally, you can send
  87.  me  mail  via   Internet.  I will answer the mail quickly monday thru
  88.  friday.   Anything  sent over the weekend will wait till monday.  you
  89.  can       reach       me       at      "apreston@isd.csc.com"      or
  90.  "tony-preston@cup.portal.com".  
  91. 3.2. Hardware required       
  92.  
  93.       The minimum  configuration  for `Citadel' is a 512K Amiga with 2
  94.  floppies.   This will allow you to run the BBS, but probably not much
  95.  more.   There  are  some people that have run Citadel on such a small
  96.  system.   Most either expand their system or just quit running it.  1
  97.  MB  of memory and a hard drive is really the practical limit.  I have
  98.  created  and  ran  a  test  bbs  on an A500 with 1 MB of memory and 2
  99.  floppies.   I  would recommend that you have 2 MBs and as a minimum a
  100.  20 MB HD for the BBS.  
  101. 3.3. Requirements        
  102.  
  103.       Citadel will  run  on  any  Amiga  Model.   There are some minor
  104.  problems  with running CONFG and fast memory on A3000s and A4000, but
  105.  the  work  around  is  simply  to run NOFastMem before running CONFG.
  106.  These  may  be fixed at any time, but since I do not have an A3000 or
  107.  A4000, I can't look for the problem.  
  108.  
  109.       Citadel does  not need any external support software to run.  It
  110.  relies  on  the Operating System for 100% of the normal functions and
  111.  is compatible with 1.2 through to the latest OS.  
  112.  
  113.       Citadel does  not use alot of stack space, but will require that
  114.  you  have your stack set to 8K or larger.  8K is more than enough for
  115.  even  the  largest  and most complex Citadel.  Citadel will make sure
  116.  you  have  at  least  an  8K  stack  or  it will quit with a `Citadel
  117.  Error'.  
  118.  
  119.       It is  important  to note is that you really should plan on a 24
  120.  hour  BBs, with a dedicated phone line.  A BBS that is available from
  121.  11pm  to  6am  is not going to be very popular.  I would suggest that
  122.  you  do  not even consider networking unless your BBS is on a regular
  123.  schedule.  
  124. 3.4. Citadel Error       
  125.  
  126.       Citadel is  a complex system, and is used on many sites.  Things
  127.  do  not  always  run  smoothly and many different problems arise from
  128.  time  to  time.   There are many Citadel `Utilities' designed to help
  129.  solve  these  problems  or  at  least  to assist in trouble shooting.
  130.  There  are  several  problem areas and the most important thing is to
  131.  collect sufficient information to diagnose the problem.  
  132.  
  133.       Citadel 68K  has  two methods of reporting errors.  The first is
  134.  on  the  console  as  the  error  occurs.  Many times, this will have
  135.  scrolled  off  the  console  and  is  lost.   To  prevent the lose of
  136.  information,  there are various log files which will also have a copy
  137.  of  the  error.   The  log  files  are  very  important  for locating
  138.  problems.  
  139.  
  140.       In general,  if  you  get an error and this information does not
  141.  tell  you  how to correct it, collect as much information as possible
  142.  and  report  what happens either directly to me or in the Citadel 68k
  143.  room.   The  first  thing to look for is a file called `debug.sys' or
  144.  `crash.sys'.   These  files  should appear in either your audit area,
  145.  the  home  area, or the location you started up Citadel.  Usually you
  146.  will  want  the  information  in  these  files(even  if  it is just a
  147.  cryptic   one  line  message  like  "dependant  variables  mismatch",
  148.  sometimes  it  tells  you  exactly where the problem is).  The second
  149.  thing  you  need to do is turn on debug, Here is a general proceedure
  150.  for collecting the maximum amount of information: 
  151.  
  152.            1) go  into  the Sysop menu, turn on debug "D" option.  You
  153.       can also do this by typing ^D in the console window.  
  154.  
  155.            2) Shut down your Citadel, "X" option.  
  156.  
  157.            3) delete  debug.sys  in  the  audit  area(or save it if it
  158.       contains  info  I  might  need.  At the least, edit the file and
  159.       add  some  markers  (like  two lines of asterisks) at the end of
  160.       the file.  
  161.  
  162.            4) Bring  up  Citadel and attempt to reproduce the problem.
  163.       If  you  cannot  do it locally, you might even ask a remote user
  164.       to  do  it  for  you.  leave debug on.  Note:  If you run CONFG,
  165.       debug  is  automatically  turned  off, repeat the above steps to
  166.       turn it on again.  
  167.  
  168.            5) archive  all  the  information(using something like lha)
  169.       and  arrange  to get the information to me.  I may call your BBS
  170.       to  download  the  file so make some arrangements in Citadel 68K
  171.       so I know where it is.  
  172.  
  173.       The above  may  generate  alot of output.  Much of the output is
  174.  cryptic  and may not seem like anything understandable.  It is mostly
  175.  internal  data  and  is useful to me.  Most of the time, you will not
  176.  need all this data to detect and fix a problem.  
  177.  
  178.       A more  common  problem  is  when  your  getting started and you
  179.  cannot  get  Citadel  to  even  start up and answer your modem.  This
  180.  could be either a hardware or a software problem.  
  181.  
  182.       It may  seem  strange  to  say  that you have a hardware problem
  183.  when  your  modem seems to work correctly with a terminal program and
  184.  you  can call out to other places with no problem.  There are several
  185.  things  that  are  key to the configuration of your modem and Citadel
  186.  which  always seem to cause a problem for New Sysops.   The first one
  187.  is  that  your  modem  must  not  be  set  to  echo  back commands to
  188.  Citadel.   This  is  normally the way you use a modem with a terminal
  189.  program  so  you  can  see  the  commands you type.  Citadel will see
  190.  input  and  assume that there is a user, start up the connection, and
  191.  then  find that there is no carrier and hang up the modem.  This will
  192.  continuosly  cycle and the BBS will not answer any calls.  The simple
  193.  solution   is   to   either   put   E0   in   the   modem  initialize
  194.  strings(assuming  a  hayes  command  set), or to configure your modem
  195.  this  way  as  default  and save the settings.  This is a very common
  196.  error.   Next problem is that no matter what you do, Citadel does not
  197.  seem  to  want  to communicate with the modem.  This could be several
  198.  things and starting from the Citadel end of things: 
  199.  
  200.            1) One  of  the  configuration  parameters for the modem is
  201.       incorrect.   There  are two normal configurations.  The first is
  202.       with  a  2400  non  MNP  modem.  This configuration will need to
  203.       have  Citadel  answer the phone and detect callers at 300, 1200,
  204.       or  2400 baud.  This configuration has all but disappeared since
  205.       today  just  about  everyone  has  14.4k  or  faster  modems.  A
  206.       suggested configuration would be: 
  207.  
  208.                 Do not use `#SYSBAUD'.  
  209.  
  210.                 Do not use `#LOCK-PORT'.  
  211.  
  212.                 Do not use `#SERIAL_7WIRE'.  
  213.  
  214.                 Specify the correct `#SERIALDEVICE'.  
  215.  
  216.                 Specify the correct `#UNITNUMBER', usually 0.  
  217.  
  218.                 Specify your  proper `#MODEMSETUP'   make sure "E0" is
  219.            included 
  220.  
  221.                 Specify your proper `#REINIT' 
  222.  
  223.                 Specify your  PROPER  `#CALLOUTPREFIX',  you  probably
  224.            only need "ATDT" 
  225.  
  226.                 Specify your  proper  `#CALLOUTSUFFIX'   you  probably
  227.            only need  "\r" 
  228.  
  229.            For a  error correcting modem, 2400 MNP or faster, you need
  230.       some  additional  information  and  setup.  The way these modems
  231.       work  is  that  the  computer to modem connection is locked at a
  232.       fixed  rate, usually faster than what the user connects at.  The
  233.       rate  you  choose  depends on your hardware.  If you have a fast
  234.       system(68030  or  better  with lots of 32 bit ram), you might be
  235.       able  to  get  the  Amiga  to run reliably at 57.6K(use 8 on the
  236.       `#SYSBAUD'  and  `#LOCK-PORT')  but from my experience, 38.4K is
  237.       the  practical  maximum.   You  will also need to configure your
  238.       modem  to  use  CTS/RTS  hardware  handshaking  and  disable the
  239.       XON/XOFF  software  handshaking(see  your  modem  manual).  This
  240.       will  give  you  the  best system response and performance.  You
  241.       also  need  to use the `#SERIAL_7WIRE' parameter so Citadel also
  242.       enables hardware handshaking.  
  243.  
  244.                 Use `#SYSBAUD'.  
  245.  
  246.                 Use `#LOCK-PORT'.  
  247.  
  248.                 Use `#SERIAL_7WIRE'.  
  249.  
  250.                 Specify the correct `#SERIALDEVICE'.  
  251.  
  252.                 Specify the correct `#UNITNUMBER', usually 0.  
  253.  
  254.                 Specify your  proper `#MODEMSETUP'   make sure "E0" is
  255.            included 
  256.  
  257.                 Specify your proper `#REINIT' 
  258.  
  259.                 Specify your  proper  `#CALLOUTPREFIX',  you  probably
  260.            only need "ATDT" 
  261.  
  262.                 Specify your  proper  `#CALLOUTSUFFIX'   you  probably
  263.            only need  "\r" 
  264.  
  265.       From time   to  time,  other  errors  may  appear  when  you  do
  266.  something  that  you  really  should not do(like power down the modem
  267.  and then power it up).  These will generate errors like: 
  268.  
  269.            Error:  [1]IOError = nnnn 
  270.  
  271.            Error:  [2]IOError = nnnn 
  272.  
  273.                 Reason:  nnnn  is a result code returned from a serial
  274.            port  i/o,  usually  a  dropped carrier(small timing window
  275.            for  a  race  condition  could  cause  this).  The error is
  276.            handled  for  99%  of  the  cases  in a way that will cause
  277.            Citadel  to  recover  and  reset.   [1] is the case where I
  278.            check  to see what is in the serial port buffer, and [2] is
  279.            when the actual read is done.  
  280.  
  281.            Error:   Startup Error Code nn 
  282.  
  283.                 Reason:  something    went    wrong    during   system
  284.            initialization. The reasons are: 
  285.  
  286.                      1 -  unable  to  open intuition.library, you must
  287.                 be 1.2 or greater to run Citadel.  
  288.  
  289.                      2 -  unable  to open graphics.library, same as 1.
  290.                 This  error also used to mean that the req.library was
  291.                 not  in  the  libs:  directory.   This  is no longer a
  292.                 requirement.    Citadel   does   not   depend  on  the
  293.                 req.library(versions 3.42.P15 or later anyway).  
  294.  
  295.                      3 -  Insufficient  Stack  space, Earlier versions
  296.                 of  Citadel  required  a large stack, much larger than
  297.                 needed(50K).   Citadel still requires an 8K limit just
  298.                 to  be  cautious.   In testing, it has never used more
  299.                 than 4K.  
  300.  
  301.                      11 -  Console  Open Error.  Catch all for console
  302.                 window  errors If you are using #WBSCREEN, try without
  303.                 it.  
  304.  
  305.                      25 -  Open  Serial  Port  Failed,  Well,  Citadel
  306.                 could  not get to the serial port(maybe something else
  307.                 has  it  open.   Note:  You will not get this error if
  308.                 you  run  Citadel while it is already running since it
  309.                 opens the serial port in a shared mode.  
  310.  
  311.                      31 -   Could   not   create   a  Port  for  timer
  312.                 communications,  Low  memory?   Trashed system tables?
  313.                 Try  a  re-boot.   This  is  one of those, "you should
  314.                 never  get  here".   If  you  bug me with this type of
  315.                 problem,   you   had   better   have   a  full  system
  316.                 configuration and alot of details.  
  317.  
  318.                      32 - could not create an I/O request. See 31.  
  319.  
  320.                      33 - Open timer.device failed.  See 31.  
  321.  
  322.                 Note:  In  the  serial  port  open errors, and in most
  323.            cases  with  debug  turned  on,  you  will get a text error
  324.            message of the form: 
  325.  
  326.                 1:    Date - Dos Error:nnnn 
  327.  
  328.                 2:    (some text as to what happened) 
  329.  
  330.                 3:    (some  text as to what happened) <-- you may get
  331.            only one line.  
  332.  
  333.                 4:    Reason: <error text> 
  334.  
  335.                 5:    Current Directory 
  336.  
  337.  
  338.                 Line 1:  is the internal error code(less than 100), or
  339.            the Dos error code.  
  340.  
  341.                 Lines 2-3:  will  either  be  a  command(like  in  the
  342.            external  protocols)  and  a text line, or just one line of
  343.            text.    External   commands  will  display  the  text  and
  344.            command, most errors do not have an external command.  
  345.  
  346.                 4: is  the  reason  the  error  occured(from  the Exec
  347.            routine Fault).  
  348.  
  349.                 5: is  the  current  directory.   This is important if
  350.            you  are  trying  to  setup  a  door for example and in the
  351.            wrong directory.  
  352.  
  353.                 If the  problem  is  reproducable, do it several times
  354.            and   record  all  possible  information,  especially  your
  355.            system  configuration!  If it happens just once and you can
  356.            not  reproduce  it,  then  still record what you can, check
  357.            things like memory in use, what is running.  
  358.  
  359.            Note:  If  you  have  a problem that seems to happen often,
  360.       realize  that  I  rarely have a crash.  Please check to see that
  361.       something  else is not causing the problem.  Remove commodities,
  362.       other  programs  and  see  if  you can cause the problem without
  363.       that  super-duper-whiz-bang  mouse  accelerator/screen  blanker!
  364.       It  probably  is  not  Citadel!   If  you  are running on a 512K
  365.       system,  you  may  just  be  running out of memory.  While every
  366.       attempt  has  been  made  to  exit  in  a  friendly  manner,  no
  367.       guarentees...  
  368. 3.5. Limits        
  369.  For  the  most  part,`Citadel'  only  has  your  imagination  as  the
  370.  limits...   In  practicality, there are some real physical limits you
  371.  will  have.  Each of these limits can be difficult to adjust later so
  372.  some  planning  is  important at this point.  You must set a limit on
  373.  the  number  of users (`#LOGSIZE'), rooms (`#MAXROOMS'), and messages
  374.  (`#MESSAGEK').   These  parameters will directly determine the amount
  375.  of  memory used while the BBS is running and the disk space needed to
  376.  support the message base and userlog.  
  377. 4. CONFG        
  378.  
  379.       To setup  the  BBS,  you must first configure your system.  This
  380.  means  taking  the  example  configuration  and  tayloring it to your
  381.  liking.   The  example  is  based  directly on `The Amiga Zone'.  The
  382.  first  thing  you must do is chose a name for your BBS (`#NODENAME'),
  383.  a  default  banner  (see  `banners'  and `#NODETITLE'), enter in your
  384.  Identification  (`#NODEID').  It is this basic information that users
  385.  and  other  Citadels will know your bbs by.  Once you have an idea of
  386.  what  the  theme of your BBS is, you can apply it to the initial room
  387.  (`#BASEROOM'),  and  floor (`#MAINFLOOR').  These will be the initial
  388.  place  that  people  are located at when they login to your BBS.  Now
  389.  comes  the real work.  You must decide some `basic system parameters'
  390.  that  will  define how much disk space your system will use.  This is
  391.  important  since  the  smaller  the  message  base  is,  the  quicker
  392.  messages  will  scroll off.  Citadel has a fixed message base so that
  393.  once  you  configure  your  system, the disk space usage is constant.
  394.  You  will  never  run  out  of  message space, the BBS will reuse the
  395.  existing  space deleting the oldest messages to make room for the new
  396.  ones.  
  397.  
  398.       Next we  have  the  `USER_PARAMETERS'  which  define the default
  399.  `PRIVILEGES'  for  your  users.  These determine how open your system
  400.  is(can  a  user  create their own account or do you do it?).  Whether
  401.  people  are  able  to use doors, or post messages to the network.  If
  402.  you  restrict  people,  then  they  will  have  to  ask  you  for the
  403.  privilege(and  you will have to give it to those you choose).  If you
  404.  make  them  the default, people will get them automatically, you then
  405.  do  not have to do anything.  I setup my system to be as automatic as
  406.  possible.   People can create their own account and do not need to be
  407.  validated.   The  example  setup  is  configured  that way.  The most
  408.  important  user  is  the  SYSOP, You.  There are some parameters that
  409.  make  your  life  easier.  the  `sysop_parameters'  will take care of
  410.  those.   Now  we  get  to  `Network'  parameters  which  you can skip
  411.  initially,  but  will  eventually want to look into.  Get your BBS up
  412.  and running first before you worry about that.  
  413.  
  414.       The basic  BBS has several `areas' you will want to setup.  Most
  415.  people  will  setup  a logical assignment that is the root of the BBS
  416.  disk  area  (called  `#HOMEAREA')  and make everything a subdirectory
  417.  off  of that.  Citadel is pretty flexible, if you are running from an
  418.  A500 with 2 floppies, it will run, even if the size will be small! 
  419.  
  420.       CONFG is   simple   to   run.    Once   you   have  created  the
  421.  `CTDLCNFG.SYS'  file,  you  just run CONFG in the same directory.  It
  422.  will  read each line, and report any errors.  If there are errors, it
  423.  will  stop after the last line is read.  If no errors, it will finish
  424.  up  its  processing,  possibly  ask you some questions and create all
  425.  the  required  files.   Most of the time, errors are of the type that
  426.  say  you  did  not have something setup.  Many of the parameters have
  427.  default  values(as  noted  here  in  this  document).   Some  of  the
  428.  parameters refer to directories and are required.  
  429. 5. SYSOP_PARAMETERS        
  430.  
  431.       There are  alot  of  parameters to setup.  Don't be overwhelmed!
  432.  Each  has  a  simple  description and parameters.  Some are ok as the
  433.  default.  
  434.  
  435.       `#LOCK-PORT'     `#TEMPAREA'      `#QWKFILEAREA' 
  436.  
  437.       `#QWKMAXROOM'    `#QWKMAXPACKET'  `#QWKNAME' 
  438.  
  439.       `#QWKLOCATION'   `#SYSOP-ARCHIVE' `#SYSPASSWORD' 
  440.  
  441.       `#SYSOPNAME'     `#MIRRORMSG'     `#SHARED-ROOMS' 
  442.  
  443.       `#NET_AREA_SIZE' `#MAX_NET_FILE'  `#EDITOR' 
  444.  
  445.       `#CLOCK'         `#SYSBAUD'       `#SERIAL_7WIRE' 
  446.  
  447.       `#DIRECTTOCHIP'  `#SERIALDEVICE'  `#UNITNUMBER' 
  448.  
  449.       `#BIOAREA'       `#MODEMSETUP'    `#REINIT' 
  450.  
  451.       `#CALLOUTPREFIX' `#CALLOUTSUFFIX' 
  452.  
  453. 5.1. #CALLOUTPREFIX        
  454.  
  455.       This parameter  specifies the initial portion of the dial string
  456.  passed  to the modem during dialing for networking.  This is a string
  457.  value  parameter  obeying normal formatting directives, and should be
  458.  used  to  convey  commands  to  the  modem.   When  dialing,  Citadel
  459.  constructs a phone number to send to the modem as follows: 
  460.  
  461.       <CALLOUTPREFIX><phone#><CALLOUTSUFFIX> 
  462.  
  463.       CALLOUTPREFIX should  alert  the modem to dial, CALLOUTSUFFIX is
  464.  supplied by the `#CALLOUTSUFFIX' parameter.  
  465.  
  466.       If you  have  a  high speed modem, with special dial strings for
  467.  different connect rates, See the `#DIALOUT' parameter.  
  468. 5.2. #DIALOUT        
  469.  
  470.  The   #DIALOUT<SPEED>  parameter  allows  you  to  specify  different
  471.  dialing  strings  for  different  data  rates.  If you have a network
  472.  partner  that  needs  a  certain speed for reliable connects, you can
  473.  set  that  system's  baud  rate  to  a speed and Citadel will use the
  474.  appropriate  dialout  string instead of the default `#CALLOUTPREFIX'.
  475.  The valid strings are: 
  476.  
  477.      #DialOut300     #DialOut1200 
  478.  
  479.      #DialOut2400    #DialOut4800 
  480.  
  481.      #DialOut9600    #DialOut14400 
  482.  
  483.      #DialOut19200 
  484. 5.3. #CALLOUTSUFFIX        
  485. 5.4. #LOCK-PORT        
  486.  
  487.       This parameter  tells Citadel that you wish to lock the COMPUTER
  488.  to  MODEM  speed  to  a  particular  value.   It  also causes CTS/RTS
  489.  hardware  handshaking  to  be  used so that the BBS communicates with
  490.  the  modem  at  a single speed and the modem handles all the Modem to
  491.  Modem  speed  negotiations.   This  parameter takes a single numberic
  492.  parameter  which  must  be  1  to  8.   The  values correspond to the
  493.  speeds: 
  494.  
  495.       0 -  300   1 -  1200   2 -  2400   3 -  4800 
  496.  
  497.       4 - 9600   5 - 14400   6 - 19200   7 - 38400   8 - 57600 
  498.  
  499.       This is  the  prefered  method of setting up the modem.  Today's
  500.  modems  are  able  to  negotiate  with the caller's modem which makes
  501.  Citadel   operation   more   reliable   and   faster.   Without  this
  502.  parameter(you  would  only do that if you have a non-error correcting
  503.  2400  baud  modem),  Citadel  will  attempt to negotiate the caller's
  504.  speed.  
  505.  
  506.       The value  of this paramter must be the same as `#SYSBAUD' or be
  507.  smaller.   It  is  prefered  that  the  two  be the same for best bbs
  508.  performance.  
  509. 5.5. #TEMPAREA        
  510.  
  511.       This parameter  takes  a  quoted  string  as  an  argument.   It
  512.  defines  the  working  area  for  the BBS.  All BBS scratch/temporary
  513.  files will be placed in this area.  This is a required parameter.  
  514. 5.6. #BIOAREA        
  515.  
  516.       This parameter  takes  a  quoted  string  as  an  argument.   It
  517.  defines  the  directory  used to store user biographies.  A biography
  518.  can  be created by your users either when they login and create their
  519.  account  or  later(and  is  can  be  updated  this way also) with the
  520.  .EB(enter-biography) command.  This is a required parameter.  
  521. 5.7. #QWKFILEAREA        
  522.  
  523.       This parameter  takes  a  quoted  string  as  an  argument.   It
  524.  defines  the  directory  where  the  QWK  processing  saves  the USER
  525.  related  data.  You must define this if you wish to supprt QWK packet
  526.  downloads(external archivers must be available).  
  527. 5.8. #QWKMAXROOM        
  528.  
  529.       This parameter  defines  what the maximum number of rooms a user
  530.  can  scan  at  one time.  Users can set their own personal value from
  531.  one   to   this  number.   This  parameter  takes  a  single  integer
  532.  argument.  
  533. 5.9. #QWKMAXPACKET        
  534.  
  535.       This parameter  defines  what  the  maximum  messages a user can
  536.  scan  at  one  time.  Users can set their own personal value from one
  537.  to this number.  This parameter takes a single integer argument.  
  538. 5.10. #QWKNAME        
  539.  
  540.       This parameter  defines a single quoted string that is passed to
  541.  the QWK packet to define the name of the packet file.  
  542. 5.11. #QWKLOCATION        
  543.  
  544.       This parameter  defines  a single quoted string passed inthe QWK
  545.  packet as the location of your BBS.  
  546. 5.12. #SYSOP-ARCHIVE        
  547.  
  548.       This parameter   defines   a   file  where  all  sysop  mail  is
  549.  archived.   If  this  is  defined,  each  mail message to you will be
  550.  written to this file.  
  551. 5.13. #SYSPASSWORD        
  552.  
  553.       This parameter  defines  a filename that has you sysop password.
  554.  This  password  will allow you(or anyone you give the password to) to
  555.  become  a  REMOTE  Sysop.   A Remote Sysop can do anything you can do
  556.  from the console so use this wisely.  
  557. 5.14. #SYSOPNAME        
  558.  
  559.       This is  you...   This  parameter tells the BBS that you are the
  560.  Sysop.   You  will have to create you account first, then add this to
  561.  the CTDLCNFG.SYS and run CONFG again.  
  562. 5.15. #MIRRORMSG        
  563.  
  564.       This parameter  tells  the  BBS that you wish to have a mirrored
  565.  message   file.   Basically,  if  you  have  the  memory,  copy  your
  566.  `CTDLMSGS.SYS'  to  RAM:,  and  then start up the BBS, this parameter
  567.  will  allow  the  BBS to write to both this mirrored message file and
  568.  the  regular  one.  You are responsible for coping te current file to
  569.  the  mirrored  one  before  the  BBS  starts up.  In addition to this
  570.  statement  you  need  to  include a `#MSG2AREA' to tell the BBS where
  571.  the  secondary  message  file  is.   This  parameter  takes  a single
  572.  integer  value, 0 for off, 1 for on.  If you were using this feature,
  573.  then put "#MSG2AREA 1" in the CTDLCNFG.SYS file.  
  574. 5.16. #SHARED-ROOMS        
  575.  
  576.       This parameter  defines  the  maximum  number  of rooms a single
  577.  node  can  share  with you.  Each entry takes up 6 bytes so the space
  578.  requirements  are  minimal.  The `DATACHNG' utility will allow you to
  579.  modify this value(make it larger) so plan accordingly.  
  580. 5.17. #CLOCK        
  581.  
  582.       The status  bar of the Citadel console contains a clock, updated
  583.  every  minute.   Therefore,  the  parameter  #CLOCK  is  available to
  584.  control  the  behavior  of the status bar clock.  The value you place
  585.  after  #CLOCK  controls  the behavior of the status line clock.  Here
  586.  are the supported values: 
  587.  
  588.      "None"   -  If  this is present, then you never have a status bar
  589. clock.  
  590.  
  591.      "Inuse"  -  If  this is present, the clock is only displayed when
  592. the system is active.  
  593.  
  594.      "Always" - This causes the clock to be active all the time.  
  595. 5.18. #SYSBAUD        
  596.  
  597.       This parameter  tells Citadel the maximum rate that the BBS will
  598.  support.   If  you  have  a non-error correcting 2400 baud modem, you
  599.  would  use  2 for the parameter and Citadel would cycle through 2400,
  600.  1200,  and  300 baud to determine the caller's rate.  Today, with low
  601.  cost  14.4K  and  28.8K  modems,  this  would  be  pretty rare.  This
  602.  parameter  should  be  set  to  the  same  value  as the `#LOCK-PORT'
  603.  parameter  for  any  2400 MNP or faster modem.  Faster modems handles
  604.  all  the  Modem  to Modem speed negotiations.  This parameter takes a
  605.  single  numberic  parameter  which  must  be  1  to  8.   The  values
  606.  correspond to the speeds: 
  607.  
  608.      0 -  300   1 -  1200   2 -  2400   3 -  4800 
  609.  
  610.      4 - 9600   5 - 14400   6 - 19200   7 - 38400   8 - 57600 
  611. 5.19. #SERIAL_7WIRE        
  612.  
  613.       This parameter   tells   Citadel   to   use   CTS/RTS   hardware
  614.  handshaking.   If you are running a slow, non-error correcting modem,
  615.  this  is  not  needed.   For any error-correcting modem, you must use
  616.  this parameter.  
  617. 5.20. #DIRECTTOCHIP        
  618.  
  619.       This parameter  tells Citadel to check the hardware directly for
  620.  Carrier  Detect.   You  may  only use this if your using the internal
  621.  serial.device  and  Unit  0.   It  will  give  better  detection of a
  622.  Carrier  or  Carrier  Lose.  For other serial cards, like the GVP I/O
  623.  Extender, you should not have this parameter in your configurtion.  
  624. 5.21. #SERIALDEVICE        
  625.  
  626.       This is  an  optional  parameter  if  you are using the internal
  627.  serial  port.  If you have a third party serial card like the GVP I/O
  628.  Extender,  then  specify  the  device  name with this parameter.  The
  629.  default is "serial.device".  
  630. 5.22. #UNITNUMBER        
  631.  
  632.       This goes  along  with the `#SERIALDEVICE' paramter, the default
  633.  is  0,  if  you  are using a different unit number, then specify this
  634.  parameter.  
  635. 5.23. #MODEMSETUP        
  636.  
  637.       This parameter  is  used  to  initialize  your  modem.   It is a
  638.  string  value  parameter  obeying the formatting directives; however,
  639.  you  should be warned Citadel automatically appends a "\r" to the end
  640.  of this string before sending it to the modem.  
  641.  
  642.       And when  is  modemSetup sent to the modem?  It is automatically
  643.  sent   while   Citadel   is   initializing,   and  it  will  also  be
  644.  automatically  sent  to the modem whenever the <R>einitialize command
  645.  is selected from the Sysop Menu (i.e. privileged function:).  
  646.  
  647.       The value  you  use for this string should cause the modem to be
  648.  put  into  a mode where it will function suitably with Citadel.  This
  649.  includes  auto-answer  and response to DTR, at the very least.  Other
  650.  options  you  may  wish to consider include turning the modem speaker
  651.  off  (if  you  have one); consult your modem manual for details.  The
  652.  example  we have here is biased towards Hayes/compatible modems.  You
  653.  may have to do some research if you're using an odd modem.  
  654. 5.24. #REINIT        
  655.  
  656.       As faster  and  faster modems appear on the scene, some of these
  657.  modems  are  displaying  odd  characteristics which did not appear in
  658.  the  early 300/1200 modems.  Chief amongst these is that some modems,
  659.  after  accepting  a  call  at  a  baud  rate  lower  than the modem's
  660.  highest,  will  not  accept  calls at higher baud rates without being
  661.  reinitialized  at  the  highest  baud  rate.  If your modem is one of
  662.  these types, then you will wish to use this parameter.  
  663.  
  664.       Also, some  modems,  although capable of accepting calls at high
  665.  baud  rates directly after low baud calls have been accepted, are not
  666.  as  reliable  in  the  area  of Result Codes as we might like.  Since
  667.  Citadel  can  use  Result  Codes, we have observed using #REINIT with
  668.  some  modems  actually  increases their reliability.  So, even if you
  669.  have a good modem, you may wish to use this parameter.  
  670.  
  671.       When this   parameter   is   present,   it   causes  Citadel  to
  672.  reinitialize  the  modem  at  its  highest  rate  with the string you
  673.  specify   in   this   parameter.    This   parameter  accepts  format
  674.  directives.   For  most  Hayes  compatible modems, the string "AT" is
  675.  usually more than acceptable.  
  676.  
  677.       When `#LOCK-PORT'  is  specified,  your  modem  will  always  be
  678.  locked  to  the  maximum data rate of that parameter and this command
  679.  will have little use.  
  680. 6. USER_PARAMETERS        
  681.  
  682.       User parameters  is  a  catch  all  for  most  of the parameters
  683.  related  to  user.   Since  the BBS is about users, nearly everything
  684.  could   be   put  into  this  catagory.   There  are  three  sets  of
  685.  parameters.   The  first is the `unlogged users' parameters.  This is
  686.  all  the  parameters  relating  to a user that has not logged in yet.
  687.  The  second  is the `PRIVILEGES', the values given to a new user when
  688.  their account is created.  The last is the `user characteristics'.  
  689.  
  690.       Each of  these  parameters must be setup and will define the way
  691.  your BBS operates.  
  692. 6.1. unlogged users       
  693.  
  694.       When a  user first calls the BBS, they will get a set of default
  695.  parameters  that will define how the BBS operates until they login or
  696.  create  an account.  If you do not allow them to create an account on
  697.  their  own,  they  will have to send you mail and you will have to do
  698.  this  manually(called  account  validation).   Citadel  allows you to
  699.  operate either way.  For unlogged users, the parameters are: 
  700.  
  701.       `#UNLOGGED-WIDTH'   -  The default width of a line
  702.  
  703.       `#LOGINOK'          -  Open/Close system control
  704.  
  705.       `#ENTEROK'          -  Can users enter messages while not logged in?
  706.  
  707.       `#READOK'           -  Can users read messages while not logged in?
  708.  
  709.       `#ANON-MAIL-LENGTH' -  Limit on anonymous mail length to prevent `RUGGIES'
  710.  
  711.       `#LOGIN-ATTEMPTS'   -  Limit on how many times a user can make a mistake
  712.  
  713. 6.2. UNLOGGED-WIDTH        
  714. 6.3. #LOGINOK        
  715. 6.4. #ENTEROK        
  716. 6.5. #READOK        
  717. 6.6. #ANON-MAIL-LENGTH        
  718. 6.7. RUGGIES        
  719.  
  720.       A RUGGIE  is  a  person that either gets carried away with their
  721.  new  found  use  of the constitutional right to freedom of speach and
  722.  needs  to be told to tone it down a little, or they are classified as
  723.  a  `TWIT'.   Citadel  does  not do anything special with this type of
  724.  person unless you make them a twit.  
  725. 6.8. TWIT        
  726.  
  727.       A twit  is a user that just will not stay under control.  It may
  728.  be  that  they  are  being  obscene  or just nasty to certain people.
  729.  Citadel  has  a  special  priveledge called twitting for this type of
  730.  user.   What this means is that a twitted user will have all messages
  731.  discarded,  no  access  to  any files for downloading and will not be
  732.  able  to find any rooms with directories attached for uploading.  The
  733.  really  neat  feature of this is that they will not know it!  The BBS
  734.  will  pretent  to  post their messages and will tell them there is no
  735.  directory  attached  to  the room as normal error messages.  Even the
  736.  most  diehard  twitted  user will eventually lose interest in the BBS
  737.  if they never get any attention.  
  738. 6.9. #LOGIN-ATTEMPTS        
  739.  '   -  Limit on how many times a user can make a mistake 
  740.  
  741.  
  742. 6.10. PRIVILEGES        
  743.  
  744.       This section  defines  the  user  privileges,  defaults  and all
  745.  related  parameters.   These  parameters  will save you some time and
  746.  effort.   If  you have doors and want everyone to be able to play, it
  747.  does  not make sense to have to give everyone the privilege.  Instead
  748.  use these parameters to set the defaults.  
  749.  
  750.       `#DOORPRIVS'        -  Allow new users to have access to doors 
  751.  
  752.       `#ROOMOK'           -   Allow  users  to  be  able to create new
  753.  rooms.  
  754.  
  755.       `#ALLMAIL'          -  Control who can use mail 
  756.  
  757.       `FILE-PRIV-DEFAULT' -   Allow  users  to  have file up/down load
  758.  access 
  759. 6.11. user characteristics       
  760. 6.12. #BASEROOM        
  761.  
  762.       Citadels always  have  a  minimum  of three rooms.  There is the
  763.  `Aide  room',  `Mail  room', and the initial room a caller starts out
  764.  in called the base room.  
  765.  
  766.       Historically, the  initial  room  was  always  called The Lobby.
  767.  Most  Citadels  today  have this configuration parameter which allows
  768.  you to name that initial room.  
  769.  
  770.       This parameter  is  a string value obeying formatting directives
  771.  and  goes  through the Citadel formatter, and you must limit yourself
  772.  to  19  characters  or  less  for  this  value.  And one more note --
  773.  Citadel  will  append  the  '>'  to this name when it prints the room
  774.  prompt  for  this  room, you don't have to put it in yourself. If you
  775.  wished to emulate the old CP/M Citadel, you'd set baseRoom thus: 
  776.  
  777.       #BASEROOM "Lobby" 
  778.  
  779.       There is no default for this parameter.  
  780. 6.13. #MAINFLOOR        
  781.  
  782.       MainFloor is  analogous to #BASEROOM.  Most Citadels have a base
  783.  floor,  just as it has an Aide> room, etc.  This parameter allows you
  784.  to  name  this  base  floor.   This parameter is a string value which
  785.  cannot  be  longer than 19 characters, and specifies the name of your
  786.  base  floor.   So,  if  you  want to name your base floor MAIN FLOOR,
  787.  you'd have 
  788.  
  789.       #MAINFLOOR "MAIN FLOOR" 
  790.  
  791.       There is no default value for this parameter.  
  792. 6.14. areas        
  793.  
  794.       The BBS  is  organized  into  what  is  called areas.  These are
  795.  directories  that either Citadel creates files in, or uses to recieve
  796.  temporary  files  from  a network session, or user action.  There are
  797.  parameters for each of the major areas.  
  798.  
  799.       `#HOMEAREA'        - The root location of the BBS.
  800.  
  801.       `#HELPAREA'        - Help files(`.HLP'), menus, and banners
  802.  
  803.       `#LOGAREA'         - User data files
  804.  
  805.       `#ROOMAREA'        - Room related files
  806.  
  807.       `#MSGAREA'         - Message base
  808.  
  809.       `#MSG2AREA'        - Optional secondary Message base to speed up the BBS
  810.  
  811.       `#FLOORAREA'       - Floor related files
  812.  
  813.       `#AUDITAREA'       - User, Door, and File activity
  814.  
  815.       `#HOLDAREA'        - Hold area for user messages
  816.  
  817.       `#EDIT-AREA'       - Editor area for a sysop editor(console only)
  818.  
  819.       `#NETAREA'         - Network files area
  820.  
  821.       `#NET_RECEPT_AREA' - Receiving area for files sent to you
  822.  
  823.       `#DOMAINAREA'      - Domain data files area
  824.  
  825.       `#BIOAREA'         - User Biography files
  826.  
  827.       `#TEMPAREA'        - BBS temporary/scratch files area
  828.  
  829.       The `CONFG'  program  will require that you define each area and
  830.  will create the directory if it does not exist.  
  831. 6.15. #HELPAREA        
  832.  
  833.       This parameter  specifies  where  all of your Help files will be
  834.  located.   These  files  are  *.HLP, *.BLB, and *.MNU.  Normally, you
  835.  should  create  this  directory  and  place  the  help  files  in the
  836.  directory  before  bringing  up Citadel, since help files are usually
  837.  online at all times.  
  838.  
  839.       #HELPAREA "cit:helps" 
  840.  
  841.       The help   files,   menus  and  default  bulletins  are  in  the
  842.  cithelps.lha  file  in the Citadel Documentation room.  You will have
  843.  to  do  some  customization  of  these files for your system.  If you
  844.  find  an error or re-write the contents of a file, try to return that
  845.  file so that others will benifit from your work.  
  846. 6.16. #LOGAREA        
  847.  
  848.       This parameter  specifies  the  location  of  your `CTDLLOG.SYS'
  849.  file (this file is sized by your `#LOGSIZE' parameter).  
  850.  
  851.       #LOGAREA "cit:users"         -- put it in a general system dir 
  852. 6.17. #MSGAREA        
  853.  
  854.       This parameter  specifies  the location of `CTDLMSG.SYS'.  It is
  855.  also   the   location   of   the   special   Citadel   message   file
  856.  `CIT_MESSAGES.SYS'.   Citadel  will  create the message file when you
  857.  run   `CONFG',  the  other  file  is  supplied  with  the  executable
  858.  archive.  
  859.  
  860.       #MSGAREA "cit:messages"             -- give msgs there own place
  861.  in the sun 
  862. 6.18. #MSG2AREA        
  863.  
  864.       This parameter    specifies    the    location   of   a   second
  865.  `CTDLMSG.SYS'.   Citadel  will  create  the message file when you run
  866.  `CONFG'.   Before  starting  up  the  BBS,  you  will  need  to  copy
  867.  `CTDLMSG.SYS'  into  this area if you have the `#MIRRORMSG' statement
  868.  in the `CTDLCNFG.SYS'.  
  869.  
  870.       #MSG2AREA "cit:messages"              --  give  msgs  there  own
  871.  place in the sun 
  872. 6.19. #FLOORARE        
  873.  
  874.       This parameter specifies the location of `CTDLFLR.SYS'.  
  875.  
  876.       #FLOORAREA "cit:floors" 
  877. 6.20. #AUDITAREA        
  878.  
  879.       This parameter   is   a  string  value  parameter  specifying  a
  880.  directory  which will hold the audit files.  If this parameter is not
  881.  present  in  your  `CTDLCNFG.SYS' file, then the audit files will not
  882.  be created or updated by Citadel.  
  883.  
  884.       The audit  files  are  usually  text files of information on how
  885.  the  BBS  is  running.   For  example there is a file (`CALLLOG.SYS')
  886.  which  shows information on the callers.  Another file keeps track of
  887.  door  usage  (`DOORUSE.SYS'),  and  another  one the file up/download
  888.  information (`FILELOG.SYS').  
  889.  
  890.       #AUDITAREA "c:audit"         -- This can only be a subdirectory 
  891. 6.21. #HOMEAREA        
  892.  
  893.       This parameter  defines  the base directory the BBS will use for
  894.  its operation.  
  895.  
  896.       This is  the directory that the BBS will operate out of.  In the
  897.  examples, 
  898.  
  899.       this directory  is  assigned  to the logical CIT: to make things
  900.  simpler.  
  901. 6.22. CIT_MESSAGES.SYS        
  902.  
  903.       This file  contains  most  of the Citadel BBS messages.  The BBS
  904.  references  the text via the Message code.  This allows the SYSOP the
  905.  maximum  flexibility  in  configuring  their  BBS.   You  can use the
  906.  standard messages, or customize them to your heart's content.  
  907.  
  908.       The Message  file  is  formatted into one line per message.  The
  909.  first  8  columns may be A "#" for a comment line, or a message code.
  910.  THE  "#"  in  column 1 will cause the rest of the line to be ignored.
  911.  Column  9  is  blank,  for  readability, and columns 10 to 79 are the
  912.  message  text.   If  the message text starts with an "@", the message
  913.  text  is taken to be a filename and that file will be read instead as
  914.  the  message text.  This will allow you to have more than one line in
  915.  a  single  message.   The  message  codes end in either EX for expert
  916.  user  messages,  or  NO  for  novice  user message.  If no EX version
  917.  exists,  the  BBS  will automatically use the NO version.  If neither
  918.  one  exists,  the  BBS  will  display  "***ERROR CODE nnnnnnnn" where
  919.  nnnnnnnn  is  the  missing  message.  If these occur, just create the
  920.  appropriate  message and add it to the file.  If you find any message
  921.  codes in the original file missing, then notify the Amiga Zone.  
  922.  
  923.       One of  the  reasons for the message formatting is to get system
  924.  dependant  information  from the BBS by using special variable names.
  925.  These names are listed below: 
  926.    Variable     Description
  927.    ^variant     Name of this Citadel Variant such as "Citadel 68K"
  928.    ^version     Major Version Id of Citadel
  929.    ^sysvers     Minor Version Id of Citadel
  930.    ^baseroom    The baseroom of your BBS
  931.    ^sysop       The name of the Sysop
  932.    ^nodetitle   The BBS Node Title
  933.    ^nodename    The BBS Node Name
  934.    ^nodedomain  The Domain the BBS is considered part of
  935.    ^nodeid      The BBS Node Id
  936.    ^mainfloor   The Floor that contains the BaseRoom
  937.    ^curruser    The name of the Current User.
  938.    ^ulprotocols A list of the Protocols usable for uploading
  939.    ^dlprotocols A list of the Protocols usable for downloading
  940.    ^doorlist    A list of the Doors available in the current room
  941.    ^lastuser    The last caller's name
  942.    ^privileges  A list of the privileges you currently have.
  943.    ^callcount   The number of calls this Citadel has recieved.
  944.    ^ia1         Special Integer Argument #1 (see below)
  945.    ^sa1         Special String Argument  #1
  946.    ^ia2         Special Integer Argument #2
  947.    ^sa2         Special String Argument  #2
  948.    ^ia3         Special Integer Argument #3
  949.    ^sa3         Special String Argument  #3
  950.    ^currtime    The current time
  951.    ^currdate    the current date
  952.    ^s           A single space
  953.    ^n           A newline followed by a space
  954.  
  955.       The Special  Arguments  are pieces of data that are used in some
  956.  of  the existing messages.  Currently the 3rd one is not used(but may
  957.  be).   Most of the messages do not use them, but those that do should
  958.  probably  continue  to use them.  You can remove the special variable
  959.  from  the  messages  that currently do use them, but adding them to a
  960.  message  that  does  not will get you a zero for an interger argument
  961.  and nothing for a string argument.  
  962.  
  963.       It is  best to keep the original message file around to check to
  964.  see what was available for the code.  
  965. 6.23. CALLLOG.SYS        
  966.  
  967.       CALLLOG.SYS contains  three  types  of  notes.   The  first type
  968.  lists when the system has come up and down.  
  969.  
  970.       The second  type  records  who  has  called,  listing  login and
  971.  logout times, one line per person, in the following format: 
  972.  
  973.       <person>   :   <login time> - <logout time> <baud rate> 
  974.  
  975.       Occasionally such  a  line will have an extra character appended
  976.  onto it, and they have the following significance.  
  977.  
  978.       '+'  The user logged in as new.
  979.  
  980.       '-'  The user used .TS to logout.
  981.  
  982.       'T'  The user timed out on the system.
  983.  
  984.       'E'  The user hit the error limit on the system and was kicked off.
  985.  
  986.       'B'  The system kicked the user off for too many offenses against `BADWORDS.SYS'.
  987.  
  988.       'C'  The user tried to chat with you.
  989.  
  990.       The third  type  of  message  in CALLLOG.SYS are notes regarding
  991.  network  sessions,  both  normal  and anytime-net.  These record on a
  992.  single  line  the  start  and  end  times  of the net sessions.  This
  993.  particular  message  can  be  disabled  by  using  the #CLEAN-CALLLOG
  994.  parameter.  
  995. 6.24. FILELOG.SYS        
  996.  
  997.       FILELOG.SYS format   is  somewhat  different.   Generically,  it
  998.  looks like this: 
  999.  
  1000.       <user name> @ <baud rate> 
  1001.  
  1002.       file1 (n  bytes)  <roomname>  <U  or  D> <start to end> <length>
  1003.  <protocol> 
  1004.  
  1005.       [FAILED] 
  1006.  
  1007.       file2 (n  bytes)  <roomname>  <U  or  D> <start to end> <length>
  1008.  <protocol> 
  1009.  
  1010.       [FAILED] 
  1011.  
  1012.       This format  keeps  the number of user names down.  "n bytes" is
  1013.  the  size  of  the  file.  "roomname" is the room involved.  "U or D"
  1014.  refers  to whether the named file was Uploaded or Downloaded.  "start
  1015.  to  end" refers to start time and end time of the file session, while
  1016.  length  is  the amount of time involved.  Protocol will be one of the
  1017.  three  XMODEM,  YMODEM,  or  WXMODEM,  or  an  external  one you have
  1018.  setup.   "FAILED"  will  only  appear  on  the  line  if the transfer
  1019.  failed.  
  1020. 6.25. DOORUSE.SYS        
  1021.  
  1022.       DOORUSE.SYS simply  lists who used what doors for what amount of
  1023.  time at what time of the day.  It appears in the `#AUDITAREA'.  
  1024. 6.26. #HOLDAREA        
  1025.  
  1026.       Citadel has  an  optional  capability to save a user's messages,
  1027.  put  them  on  hold  so  to speak.  This can be because the user lost
  1028.  carrier  while  entering  a  message,  or  told  the  BBS to Hold the
  1029.  message  for  later.   The reason this is optional, is that if you do
  1030.  not  specify  this  area,  a user will not be able to use this option
  1031.  and  any  message  held  will  be  lost  when the user terminates the
  1032.  session.   A held file takes about 8K bytes of space on the disk.  It
  1033.  is  possible  that  every user could have a held message at one time,
  1034.  each  is  uniquely  identified so in figuring disk space, this should
  1035.  be remembered.  
  1036.  
  1037.       #HOLDAREA "hold" 
  1038. 6.27. #EDIT-AREA        
  1039.  
  1040.       The optional   edit  area  goes  along  with  the  sysop  editor
  1041.  directive  `#EDITOR'  which  is  used to define a directory where the
  1042.  BBS   will   put  the  temporary  message  file  and  run  the  sysop
  1043.  editor(this  is  for  the  console  user only).  This is like any BBS
  1044.  area.  
  1045.  
  1046.       #EDIT-AREA "RAM:" 
  1047. 6.28. #EDITOR        
  1048.  
  1049.       This is  the  command  that  is used to run the optional Console
  1050.  user  editor.   When  a user is logged into the console, this command
  1051.  is  used to invoke the external program to edit the message text(will
  1052.  be  written  to  tempmsg.sys  in  this  area).   This  command should
  1053.  specify  any  options  needed to make the editor run and have the BBS
  1054.  pause  while the editor is running(some editors will release the task
  1055.  as  soon  as  they  startup  which  will make Citadel think your done
  1056.  editing).  
  1057.  
  1058.       #EDIT-AREA "TTX WAIT" 
  1059. 6.29. #NETAREA        
  1060.  
  1061.       This command  tells  the  BBS  where  to  put the files that are
  1062.  related to the network process.  It is like any other BBS area.  
  1063.  
  1064.       #NETEAREA "NET" 
  1065. 6.30. #NET_RECEPT_AREA        
  1066.  
  1067.       This is  a special BBS directory that is used to store all files
  1068.  sent  to  your  system  by  another  system during a network session.
  1069.  When  a  system uses the Send File faculty(not the same as requesting
  1070.  a file over the network).  
  1071.  
  1072.       #NET_RECEPT_AREA  "Recieving" 
  1073.  
  1074.       Files sent  to  your  BBS using the utility `AFF' will appear in
  1075.  this   area.    In  addition,  the  parameters  `#NET_AREA_SIZE'  and
  1076.  `#MAX_NET_FILE'  will  be  used  to limit the amount of files and the
  1077.  largest file in this area.  
  1078. 6.31. #NET_AREA_SIZE        
  1079.  
  1080.       This parameter  controls  the  total amount of space you wish to
  1081.  allow  files  coming into your system via the net(Send File Command).
  1082.  This  is  the  limit  on files being sent to your without you asking.
  1083.  If  this  area  fills  up  to  this  size,  additional  files will be
  1084.  rejected.  
  1085. 6.32. #MAX_NET_FILE        
  1086.  
  1087.       This parameter  controls  the size of the largest file your will
  1088.  allow  to be sent to you during a network session.  Files larger than
  1089.  this size will be rejected.  
  1090. 6.33. #DOMAINAREA        
  1091.  
  1092.       This parameter  specifies  the  area  where Citadel will put the
  1093.  domain   related  temporary  files.   The  files  in  this  area  are
  1094.  dynamic.   Citadel  will  create  them  as  needed  and maintain them
  1095.  totally.   You  will not need to worry about these files unless there
  1096.  is  a  problem  with  domain  mail  and  you  are the server for your
  1097.  domain.   This  is  a  fairly  advance  topic and not covered in this
  1098.  document.   Eventually,  there  will be a separate document for these
  1099.  types of issues.  
  1100. 6.34. basic system parameters      
  1101.  
  1102.       The basic      system     parameters     define     how     many
  1103.  `rooms'(`#MAXROOMS'),  messages  per room(`#MSG-SLOTS'), private mail
  1104.  messages    per    user(`#MAIL-SLOTS'),    Size    of   the   message
  1105.  base(`#MESSAGEK')  and  if you will want it encrypted (`#CRYPTSEED').
  1106.  You  want  to give some careful thought to these parameters since any
  1107.  choices  made  now  will be a bit painful to modify later.  There are
  1108.  `utilties'  that  will  allow  parameters to be modified, but only to
  1109.  increase  them.   To  decrease  them  requires that you start over by
  1110.  deleting the appropriate files and reconfiguring.  
  1111.  
  1112.       I recommend  that  you  keep  `#CRYPTSEED'  at zero although any
  1113.  value  can  be  used.   It  makes  debug easier for me if I grab your
  1114.  files  plus that value will speed up all the processing.  The message
  1115.  slots  and size of the message base is a little cryptic.  If you have
  1116.  100  slots,  then Citadel will remember the last 100 messages in each
  1117.  room.   Mail has a separate value, but it is the same idea.  With 100
  1118.  rooms,  you have 10,000 active messages possible in the system.  With
  1119.  messages  sizing  from   500  bytes  to  7500 bytes, you could have a
  1120.  message  base  of  5,000,000  to  75,000,000!   Typically the average
  1121.  message  is  alot  closer  to the 500 bytes size.  The 600K size here
  1122.  gives  me  a  file  that  is 1217 blocks in size(614400 bytes).  This
  1123.  would  actually  fit  on  a  floppy  if  you wanted(although it would
  1124.  pretty  much  fill  the  floppy).  You can make these pretty much any
  1125.  value  you  want,  the  larger  the  value  the  more  the disk space
  1126.  needed.  A reasonable approximation for messagek is: 
  1127.  
  1128.       ( MSG-SLOTS + MAIL-SLOTS ) * 2.75K 
  1129.  
  1130.       ( 120 + 99 ) * 3K = 602.25 
  1131.  
  1132.       You can  use  more.....   For  the larger sized system, use 7.5K
  1133.  and get 1604K...  The practical limit is 4095K 
  1134. 6.35. #CRYPTSEED        
  1135.  
  1136.       CRYPTSEED is  a value used in encrypting the data files.  Choose
  1137.  a  value  when  you  install the system, but not thereafter -- or you
  1138.  won't  be  able  to  read  the existing files any more.  If you use a
  1139.  value  of  zero,  none of the data files will be encrypted.  This has
  1140.  little  value  since  you  as  SYSOP can access anybody's account and
  1141.  read  any message, there is no privacy.  I recommend using zero.  You
  1142.  should  not  allow  any of the system files to be downloaded and this
  1143.  is  the only protection you have if you do.  It is better to keep the
  1144.  users  out  of  the data files.  Using zero has an additional benifit
  1145.  that  your  system  will  be  slightly faster.  If you use a non zero
  1146.  encryption  seed,  all  the  data files will be encoded.   An example
  1147.  is: 
  1148.  
  1149.       #CRYPTSEED 1234 
  1150.  
  1151.       It is  important that you do not change this value.  If for some
  1152.  reason  you  should  lose  your `CTDLCNFG.SYS' file, run the `VERIFY'
  1153.  utility  and  it  will  display not only this value, but the value of
  1154.  all  the  important data from this file.  Without this data item, you
  1155.  will  not  be  able to reconfigure your BBS.  This is important since
  1156.  if  the bbs should crash, or your system should go down while the bbs
  1157.  is  running,  you  have to run the CONFG utility to recreate the data
  1158.  file  `CTDLTABL.SYS'.   Without  that  file,  the  BBS  will not run.
  1159.  There  is  only  one  parameter  on the command line.  If it does not
  1160.  match  "onlyParams"  or  "FirstInit"  then  CONFG will assume you are
  1161.  re-initializing  the  BBS.   "FirstInit"  assumes  that  you  want to
  1162.  create  the  BBS  from  scratch  initializing  all  the  files  as if
  1163.  creating  a  new  BBS.   This means that if you already have a BBS up
  1164.  and  running,  all  the data files will be re-created and initialized
  1165.  as  empty(i.e  all  existing  users deleted, all messages gone).  You
  1166.  can  use this the first time and CONFG will not ask you any questions
  1167.  about  creating this file or that one...  Once you have a running BBS
  1168.  and  you  need  to  modify certain parameters(see `Safe Configuration
  1169.  Parameters') 
  1170. 6.36. Safe Configuration Parameters      
  1171.  
  1172.       These parameters  control  characteristics  of  the  BBS and not
  1173.  file  sizes.   You can modify these at any time by changing the value
  1174.  in  the  `CTDLCNFG.SYS' file and then running "CONFG ONLYPARAMS".  To
  1175.  do  this,  change  the  file,  bring the BBS down, then run CONFG and
  1176.  then restart the BBS.  
  1177. 6.37. #NODEID        
  1178.  
  1179.       As mentioned,  this  parameter  is  a network parameter that has
  1180.  traditionally  always  been  set,  even for non-network Citadels.  If
  1181.  you  have  no  plans  to ever be on a `C86Net', Then this is not real
  1182.  important.  
  1183.  
  1184.       If you  do  plan  to  join  the `C86Net', (we'll go over this in
  1185.  more  detail in the section on `Networking'), then you do have to set
  1186.  this parameter correctly.  The format of this parameter is 
  1187.  
  1188.       "<Country code><Area Code><Phone number>" 
  1189.  
  1190.       all of  which  applies  to  the  phone  your  system resides on.
  1191.  Country  code  is  a  two letter sequence indicating what country you
  1192.  live  in (US is the United States, CA is Canada.  Other country codes
  1193.  may  be  found  in  COUNTRY.DOC).  Area code is the area code of your
  1194.  system  (yes,  we  are  aware  there is a clear bias towards US-style
  1195.  telephony).   And  Phone  number is, of course, the phone number your
  1196.  system  is  on.   You  can  put  punctuation (such as parenthesis and
  1197.  dashes),  but  please  be  conservative with them.  This string value
  1198.  does  not  obey  formatting  directives.   Here's  a  fairly  generic
  1199.  example: 
  1200.  
  1201.       #NODEID "US (609) 953 8159"   -- Some system somewhere..:) 
  1202.  
  1203.       Other systems   will   use   your   node  id  to  call  you  for
  1204.  networking.   It  will  be  how  other systems identify your system's
  1205.  messages.  
  1206. 6.38. #NODENAME        
  1207.  
  1208.       nodeName is,  in reality, purely a network parameter, and if you
  1209.  have  no plans to ever join a `C86Net', then there is no need to fill
  1210.  in  this  parameter.   However,  it has always been traditional, even
  1211.  before  there  was  a net for any Citadel system anywhere, to fill in
  1212.  this  and the `#NODEID' parameter.   nodeName is a string value which
  1213.  does  NOT  accept  formatting directives (i.e., formatting directives
  1214.  will  be  ignored).   It  can  be no longer than 19 letters long.  It
  1215.  should  be  a  short, mnemonic name for your system.  An EXAMPLE of a
  1216.  reasonable value: 
  1217.  
  1218.       #NODENAME "ODD-DATA"             -- The original Citadel 
  1219.  
  1220.       If you  ever  do  join  a  `C86Net',  messages  from your system
  1221.  appearing on another Citadel node will look something like this 
  1222.  
  1223.       82Nov23 from Cynbe ru Taren @ODD-DATA 
  1224.  
  1225.       except ODD-DATA   would   be   replaced   with  your  value  for
  1226.  #NODENAME.  
  1227. 6.39. #NODETITLE        
  1228.  
  1229.       The first  parameter  you should find is called nodeTitle. It is
  1230.  a  string  value  obeying  formatting  directives,  and is subject to
  1231.  formatting   considerations.    nodeTitle   is   the  title  of  your
  1232.  installation  printed  when carrier is detected on your system.  More
  1233.  precisely,  nodeTitle  will  show  up  in the following place on your
  1234.  system: 
  1235.  
  1236.       Welcome to <#NODETITLE> 
  1237.  
  1238.       However, nodeTitle  may  not  necessarily  be  printed  at  this
  1239.  point.   After  successfully  bringing your system up, please consult
  1240.  the  section  on  Help  Files for more information on banner options.
  1241.  EXAMPLE: 
  1242.  
  1243.       #NODETITLE "Test   System\n  Truly  a  Heaven  in  Reverse"  The
  1244.  #NODETITLE  is  printed out on .Read Status commands, also.  There is
  1245.  no formal limit on the length of this parameter.  
  1246. 6.40. banners        
  1247. 6.41. The Amiga Zone      
  1248.  
  1249.       The Amiga  Zone is the primary support BBS.  The number is (609)
  1250.  953-8159.   There are other Citadels that will help the budding Sysop
  1251.  out,  but  this  is  the  place you will find the latest and greatest
  1252.  version  of  Citadel,  CONFG,  and  the  Utilities.   In  addition to
  1253.  calling  direct,  you  should  think about networking the Citadel 68K
  1254.  room.   This  is  the  place  where  comments, bug reports, and other
  1255.  issues  are  discussed.   The  Amiga  Zone  will feed the room to any
  1256.  Citadel  that  wishes  to  network,  however, the Amiga Zone will not
  1257.  call  out for a network session unless the system is local.  You will
  1258.  have  to pay for the calls.  This does not amount to much if you call
  1259.  a  few  times  a  week.  Fortunately, there are about 200 Citadels in
  1260.  the  USA  and  Canada, you might find a local system to network with,
  1261.  or  one  that costs less than the Amiga Zone to network with.  If you
  1262.  wish,    I   will   answer   questions   at   my   internet   address
  1263.  "apreston@isd.csc.com" or "tony-preston@cup.portal.com".  
  1264. 6.42. #LOGSIZE        
  1265.  
  1266.       This numerical  parameter  gives  you  the ability to decide how
  1267.  many  accounts will be available on your system.  If you run a system
  1268.  in  which  more  accounts  are used than there are accounts reserved,
  1269.  then  new  accounts  are generated by killing old accounts.  Accounts
  1270.  are  recycled  by finding the account who's last use is the oldest of
  1271.  all  the accounts in the system, under the assumption such an account
  1272.  is no longer active.  
  1273.  
  1274.       All space  is reserved immediately for these accounts.  The size
  1275.  of  this  file  can  be  estimated  from  the formula(this includes a
  1276.  possible held file for every USER).  
  1277.  
  1278.       # of  bytes  =  LOGSIZE  *  (82  + MAXROOMS + (6 * MAIL-SLOTS) +
  1279.  8092) 
  1280.  
  1281.       so if  you  are  operating  in  a  restricted  environment, plan
  1282.  accordingly.   If  you  need  to,  you can expand the size of the log
  1283.  through  the  use  of  the  `DATACHNG' utility, but the log cannot be
  1284.  shrunk.  This is a numerical value.  Here is an example: 
  1285.  
  1286.       #LOGSIZE 200 
  1287.  
  1288.       For a   system   with   100  rooms(`#MAXROOMS'),  and  100  mail
  1289.  slots(`#MAIL-SLOTS')  this  would  be  just  over  150K bytes for 200
  1290.  users.   It  should  be noted that the larger the logsize, the longer
  1291.  the  `CONFG'  utility  will  take  to  re-configure the system.  Each
  1292.  entry is checked and updated when this is done.  
  1293. 6.43. #MAXROOMS        
  1294.  
  1295.       This numerical  parameter  specifies the maximum number of rooms
  1296.  your  system will support.  Since the baseRoom, Aide>, and Mail> room
  1297.  are  necessary,  the  smallest  value you can give is 3.  The largest
  1298.  number is 65536.  If you wanted to have a 64 room system, you'd have 
  1299.  
  1300.       #MAXROOMS 64 
  1301.  
  1302.       You can  use  the  following  formula  to estimate the number of
  1303.  bytes a room file will take up on your SYSTEM: 
  1304.  
  1305.       # of bytes = MAXROOMS *(50 + (6 * MSG-SLOTS)) 
  1306.  
  1307.       For a    system    with    100    rooms    and    200    message
  1308.  slots(`#MSG-SLOTS'),  you  would need aproximately 125 Kbytes of disk
  1309.  space.   It  should  be noted that the larger this is, the longer the
  1310.  `CONFG' takes since each room is updated.  
  1311. 6.44. #MAIL-SLOTS        
  1312.  
  1313.       This is  a  numerical parameter specifying how many messages per
  1314.  log  record you wish to reserve for Mail.  The Mail> room is the only
  1315.  room  in the system whose data is not kept in CTDLROOM.SYS.  Instead,
  1316.  the  file  CTDLLOG.SYS  contains the "Mail>" room, reserving for each
  1317.  account  enough  room  for MAIL-SLOTS Mail messages.  Therefore, this
  1318.  parameter  gives  you  the  ability  to  decide the maximum number of
  1319.  Mail>  messages  per user they can access.  Please remember if a user
  1320.  gets  more  messages  in  Mail> than there are MAIL-SLOTS between two
  1321.  successive  logins,  then they will lose the earlier messages sent to
  1322.  them.   Another  consideration  is many users like to review old Mail
  1323.  when   engaged  in  an  in-depth  private  conversation.   Therefore,
  1324.  setting  MAIL-SLOTS  to  a  low  value  may  not  be  the  attractive
  1325.  alternative  it  first seems.  However, it should go without saying a
  1326.  high  MAIL-SLOTS  value  may  eat up more room than necessary on your
  1327.  drives.   The  section  on  `#LOGSIZE' will give an exact formula for
  1328.  how much space your log will take up.  
  1329. 6.45. #MESSAGEK        
  1330.  
  1331.       MESSAGEK defines  how  much  disk space you wish to allocate for
  1332.  messages  on  your  installation.  Because messages can vary in size,
  1333.  there  is  no  way  to  define how many messages you can have in your
  1334.  system,  or  how fast they turnover.  All the messages in your system
  1335.  will  reside  in CTDLMSG.SYS, and thus the number of messages in your
  1336.  system  at  any given moment will depend totally on the length of the
  1337.  messages  being  entered into the system by your users.  The turnover
  1338.  rate of your messages will depend on how busy your system is.  
  1339.  
  1340.       For example,  if  you  reserve 600K for messages, you would have
  1341.  an  approximate  1200  messages(messages  can  get  as  large  a 7500
  1342.  characters  so  if you have verbose users, this could be as low as 80
  1343.  messages  if they were all to the limit, a good conservative estimate
  1344.  is  512 characters which gives 1200 messages).  If you get 25 callers
  1345.  a  day and each posted 4 messages, you would have a turnover of about
  1346.  12  days.   If  you  networking and get 25 messages a day in 4 rooms,
  1347.  plus  these  callers,  you  have  a  6  day turnover.  The higher the
  1348.  volume,  the quicker the turnover.  When the messages turnover, older
  1349.  message  space  gets  reused  which means older messages are deleted.
  1350.  Shared rooms can have a very high volume.  
  1351.  
  1352.       The sysop  of an installation should also keep in mind that very
  1353.  large  systems,  with  many  new messages, can be intimidating to new
  1354.  users,  so  large  message  spaces should be approached with caution.
  1355.  Remember,  there  is  a  utility(`Expand')  for expanding the message
  1356.  base,  but not for shrinking it.  The only method available to shrink
  1357.  the  message  base  is to delete the existing one and then reset this
  1358.  value  to a smaller amount.  You will lose all the messages(including
  1359.  mail) if you do this.  
  1360.  
  1361.       This is  a  numerical  value  which you specify in 'K', which is
  1362.  actually  1024  bytes/K.   So, for example, to specify a 250K message
  1363.  file 
  1364.  
  1365.       #MESSAGEK 250               -- 250K message base 
  1366.  
  1367.       The above parameter will require 250 Kbytes of disk space.  
  1368. 6.46. #SCAN-NET-MESSAGES        
  1369.  
  1370.       This parameter  tells  Citadel  that  the messages recieved over
  1371.  the  network  should  be  scanned against the file `BADWORDS.SYS' and
  1372.  any matches should cause the offending message to be discarded.  
  1373. 7. Utilities        
  1374. 8. Installation        
  1375. 9. C86Net        
  1376. 10. BBS List       
  1377. 11. Files        
  1378.  
  1379.       This section  details  the  various  files  that  exist  in  the
  1380.  Citadel  BBS  system.   Most of these files are maintained by the BBS
  1381.  software  and  you  only  need to know a general idea of why they are
  1382.  there  and  how  big  they will be.  Some have particular formats and
  1383.  must be maintained by the Sysop. The files are: 
  1384.  
  1385.       `debug.sys' - System debug information 
  1386.  
  1387.       `crash.sys' - System failure message 
  1388. 11.1. debug.sys        
  1389.  
  1390.       This file  is only generated if the `#AuditArea' is defined.  It
  1391.  will  be  generated  only  if  the debug sysop option is turned on or
  1392.  there  is  a  serious error or problem and the system needs to report
  1393.  information.   Most of the entries in this file are also displayed on
  1394.  the  console.   This  is  a  log that should be examined for problems
  1395.  that  could  occur  in  your setup.  Generally, if you have a problem
  1396.  and  want someone to assist you, it would be a good idea to make this
  1397.  file  available(in  other  words don't delete until your sure it wont
  1398.  be needed).  
  1399. 11.2. crash.sys        
  1400.  
  1401.       This file  usually  contains only a single error message.  It is
  1402.  used  to  display  information  about  a  failure  while  the BBS was
  1403.  initializing  and  did not have the screen and windows open to report
  1404.  the  problem.   This  file  will occur in the current directory which
  1405.  might  not  be  `#HOMEAREA',  since  the  BBS is going to stop itself
  1406.  immediately.  
  1407. 12. #ROOMAREA        
  1408.  
  1409.       This parameter specifies the location many files.  
  1410.  
  1411.  
  1412.       #ROOMAREA "cit:room"          -- another general system dir 
  1413.  
  1414.  
  1415.       This directory  contains  many files which are very important to
  1416.  the  basic  operation  of  Citadel.   This  may  seem overwhelming at
  1417.  first,  and  you  need to know what these files are to understand how
  1418.  to  fix  problems that might occur later.  Much of these files relate
  1419.  to  the  options  you  select  on  your  Citadel with `CONFG'.  These
  1420.  affect  networking, user account creation, what external programs you
  1421.  can  run  and many other Citadel options.  For the most part, you can
  1422.  start  up  a  BBS  without  knowing  anything  about these files, but
  1423.  eventually  if  you  run  into problems, these items are a major help
  1424.  with most of them.  
  1425.  
  1426.  
  1427.       `aliases.sys'    `badnames.sys'  `badpasswords.sys' 
  1428.  
  1429.       `badpeople.sys'  `badwords.sys'  `citadoor.sys' 
  1430.  
  1431.       `ctdlarch.sys'   `ctdldir.sys'   `ctdlfwd.sys' 
  1432.  
  1433.       `ctdlinfo.sys'   `ctdlmodr.sys'  `ctdlprot.sys' 
  1434.  
  1435.       `ctdlroom.sys'   `DExxx.SYS'     `RESULTS.SYS' 
  1436.  
  1437.  
  1438.       Some of  these  files  are  maintained by Citadel itself and you
  1439.  need  not  do  anything  with the files at all.  The only reason they
  1440.  are  mentioned  here  is  to  prevent confusion and to document their
  1441.  ultimate purpose in the life of your BBS.  
  1442. 12.1. ALIASES.SYS        
  1443.  
  1444.       This file  is  used  to  alias  the  name  of a BBS with another
  1445.  name.   This  serves  the purpose of clarifying what a user thinks is
  1446.  the  name  of  a BBS.  For example, in the typical discussions on BBS
  1447.  issues,  people  refer  to  "C-86  Test  System" using "Test System".
  1448.  This  is  common  enough  that  a  User  might  try  to  send mail to
  1449.  "Sysop@Test  System"  only to find that the BBS does not exist.  When
  1450.  you  have two names that seem equally applicable for some system, you
  1451.  can  make  an  entry  in the ALIASES.SYS file.  The format is one per
  1452.  line and is: 
  1453.  
  1454.       <alias> <realname> 
  1455.  
  1456.       The <alias>  and  <realname>  are quoted strings so "Amiga Zone"
  1457.  and  "The  Amiga  Zone"  would  be  good  entries  for  an  alias and
  1458.  realname.  The two are separated by a single space.  
  1459. 12.2. badnames.sys        
  1460.  
  1461.       This file  is  optional.   The  Sysop  may create it if desired.
  1462.  The  format  is  very  simple.   One name per line.  Each name in the
  1463.  file  will  be checked against any new account name and the name will
  1464.  be  rejected  if a match occurs.  This file is a list of invalid user
  1465.  names.   If  it  is  not  present, Citadel will not complain and will
  1466.  accept any new name.  
  1467. 12.3. badpasswords.sys        
  1468.  
  1469.       This file  is  optional.   The  Sysop  may  create  it  if it is
  1470.  desired  that  the  BBS  should  check  each  password to ensure that
  1471.  commonly  used  names  and  easily  guessable passwords are not used.
  1472.  Each  Password  entered  by users will be validated against this list
  1473.  and a match will be rejected.  
  1474. 12.4. badpeople.sys        
  1475.  
  1476.       This file  is  optional.   The  Sysop  may create it if desired.
  1477.  The  format  is  a username and a room name separated by a comma.  If
  1478.  this  file  exists,  each network message will be checked against the
  1479.  list  and  any  matches  will  cause  the message to be discarded(see
  1480.  `badwords.sys'  for  a similar censor mechinism).  It is important to
  1481.  note  here that these messages are *REMOVED* from the network and not
  1482.  sent  on  to other systems that may not want them removed.  At times,
  1483.  when  a  certain  user  gets  out of control, a Sysop may want to use
  1484.  this option.  
  1485. 12.5. badwords.sys        
  1486.  
  1487.       This optional  file  may  be created by the Sysop to control the
  1488.  contents  of  messages.   Each  message may be optionally scanned (if
  1489.  `#SCAN-NET-MESSAGES'  is  in  the  `CTDLCNFG.SYS' file) as it arrives
  1490.  during  a  network  session.   Any  messages  which fail to meet your
  1491.  standards  of  decency  will  be discarded(placed in the file that is
  1492.  called  `DISCARD')  and  a  message  left  for  you in the AIDE room.
  1493.  Usually,  there is little need to actively censor Citadel Users.  The
  1494.  format  of  the  file is simply a list of words or partial words(frog
  1495.  in  the  list  will  reject  froggy, froggie, and frog).  The list of
  1496.  words  starts on the 3rd line of the file and all lines from there to
  1497.  the  end  of  the  file.   The first line is called the "icky" level.
  1498.  This  level  indicates  how  many  times  a  user  may use one of the
  1499.  "forbidden"  words  before  the  system  will  disconnect  them.  The
  1500.  second  line  may  be  blank  if  you dont want the rejected messages
  1501.  saved.   If  non-blank,  It will be the name of the file that Citadel
  1502.  uses  to  save  the text.  Any user kicked off the BBS will get a "B"
  1503.  added to the CALLLOG.SYS entry.  
  1504. 12.6. citadoor.sys        
  1505.  
  1506.       This file  is  created  by the `CONFG' program.  It contains the
  1507.  data needed by the BBS to run any door programs you have setup.  
  1508. 12.7. ctdlarch.s        
  1509.  
  1510.       This file  is  maintained  by  the BBS.  It contains entries for
  1511.  rooms  that  are  archived.   You  should  not  mess  with this file,
  1512.  instead  use the BBS to change how and when a room is archived.  Room
  1513.  archiving  is  just an additional copy of all messages that appear in
  1514.  a  room.  The archive file may have optional formatting parameters in
  1515.  the  name.   %m  will  be replaced by the current month and %y by the
  1516.  last two digits of the year.  
  1517. 12.8. ctdldir.sys        
  1518.  
  1519.       This file  is  maintained  by the BBS.  It contains entries that
  1520.  tell  the  BBS  the  name  of  the  directory that is attached to the
  1521.  room.   You  should  use  the  AIDE commands with the BBS to make any
  1522.  changes needed to this file.  
  1523. 12.9. ctdlfwd.sys        
  1524.  
  1525.       This file  is  maintained  by the BBS.  It contains entries that
  1526.  tell  the  BBS where to forward mail to a particular user.  This data
  1527.  is  maintained by the individual user, you do not need to worry about
  1528.  it.  
  1529. 12.10. ctdlinfo.sys        
  1530.  
  1531.       This file  is  maintained  by  the BBS.  It contains entries for
  1532.  each  room  that  are  the text information on that room.  You should
  1533.  use  the  BBS to change any room information and not directly in this
  1534.  file.  
  1535. 12.11. ctdlmodr.sys        
  1536.  
  1537.       This file  is  maintained  by  the  BBS.  It contains entries to
  1538.  tell  the  BBS  who  is a moderator of a particular room.  You should
  1539.  use the BBS to change any of this information.  
  1540. 12.12. ctdlprot.sys        
  1541.  
  1542.       This file  contains  the  commands  needed to implement external
  1543.  protocols.   The  BBS  will  read  this  file only when it starts up.
  1544.  Each  line in the file contains information about either an upload or
  1545.  download  protocol.   The  BBS  always has X and Y modem(even if they
  1546.  are  really  slow  implementations  of it) internally.  There are two
  1547.  types  of entries.  The first is the "regular" external program entry
  1548.  that  defines  how  to  call  on  a  program  that will implement the
  1549.  protocol.   The  `protocol'  parameters  are  used  with this type of
  1550.  protocol.   Citadel will invoke the program and expect the program to
  1551.  take   care  of  everything  except  the  description(which  will  be
  1552.  prompted    for   afterwards).    The   second   type   is   an   XPR
  1553.  implementation.   Both  of  these  types have the same parameters for
  1554.  the  first  four  parameter,  it  is the fifth parameter that varies.
  1555.  The format is: 
  1556.  
  1557.       <letter> <type> <name> <direction> <fifth parameter> 
  1558.  
  1559.       The <letter>  is  the  protocol  letter that will be used by the
  1560.  BBS  when  a  user enters .R<letter>B for example.  Most people use Z
  1561.  for Zmodem for example.  
  1562.  
  1563.       The <type>  is 1 or M for "regular" external protocols.  1 means
  1564.  only  single  file  transfers, M means batch transfers are supported.
  1565.  It  is suggested that even for a protocol like Zmodem, you only allow
  1566.  uploads  to  be  single  files.  This will prevent files from getting
  1567.  uploaded   without   descriptions.   A  <type>  of  X  or  Y  is  the
  1568.  corresponding  types  for the XPR type.  X is the single and Y is the
  1569.  batch.  
  1570.  
  1571.       The <name>  parameter  is the name the BBS will display when you
  1572.  type the <letter> 
  1573.  
  1574.       The <direction> is U for upload and D for download.  
  1575.  
  1576.       The <fifth  parameter>  is  an  XPR library name if it is an XPR
  1577.  protocol.   It  should  be spelled exactly like the name in the LIBS:
  1578.  directory.   If it is not an XPR protocl, the rest of the line is the
  1579.  command  used  by  the  BBS  to  invoke  the  protocol.   An  example
  1580.  CTDLPROT.SYS file looks like: 
  1581.  
  1582.       Z X Zmodem U xprzmodem.library 
  1583.  
  1584.       Z Y Zmodem D xprzmodem.library 
  1585.  
  1586.       Q M Zmodem U xprd -mcit:xprd.log -s -c -n -q r %g 
  1587.  
  1588.       K M    Kermit    U    xprd    -mcit:xprd.log   -s   -c   -n   -q
  1589.  -lxprkermit.library r %g 
  1590.  
  1591.       This would  only allow downloading with an XPR Zmodem, but allow
  1592.  uploading with two types of Zmodem and a Kermit.  
  1593. 12.13. protocols        
  1594.  
  1595.       When you  have  an external protocol, the command may get rather
  1596.  complex.   The  BBS  must insert the filename(s) on the command line.
  1597.  Citadel  will  scan  the  command  and  locate a "%g", if that is not
  1598.  found   the  end  of  the  command  line  is  used  instead  and  the
  1599.  filename(s) being transfered will be inserted there.  
  1600. 12.14. ctdlroom.sys        
  1601.  
  1602.       This file  is  maintained  by Citadel.  You should not mess with
  1603.  it.   It contains all the information needed to maintain a room.  Use
  1604.  the utilities and Citadel to make any appropriate changes.  
  1605. 12.15. DExxx.SYS        
  1606.  
  1607.       These files  define  external  commands  that  Citadel  may use.
  1608.  There  are  three  lines in the file, each defining what Citadel does
  1609.  to  Test,  Uncompress,  and  Compress files using the "xxx" archiver.
  1610.  The  supported  types are ARC, LHA, LZH, and ZIP.  Line 1 is the test
  1611.  line,  this  is  used  when  a  user uploads a file of the recognized
  1612.  types.   Citadel will test the archive to ensure a good upload.  Line
  1613.  2 is the Uncompress line, Citadel uses this line to allow the 
  1614. 12.16. RESULTS.SYS        
  1615.  
  1616.       This file,  found  in  the `#ROOMAREA',  defines all the results
  1617.  codes  your  modem returns.  Citadel needs this file to determine the
  1618.  speed,  even  if  the modem is locked to one speed(see `#LOCK-PORT').
  1619.  Citadel  will  use  this  to properly compute the estimated times for
  1620.  file  downloads  and  for  the speed of the modem.  The codes are one
  1621.  per line and a sample file would look like: 
  1622.  
  1623.       #RESULT-300 CONNECT 300 
  1624.  
  1625.       #RESULT-1200 CONNECT 1200 
  1626.  
  1627.       #RESULT-2400 CONNECT 2400 
  1628.  
  1629.       #RESULT-2400 CONNECT 2400/ARQ 
  1630.  
  1631.       #RESULT-4800 CONNECT 4800 
  1632.  
  1633.       #RESULT-4800 CONNECT 7200 
  1634.  
  1635.       #RESULT-9600 CONNECT 9600 
  1636.  
  1637.       #RESULT-9600 CONNECT 12000 
  1638.  
  1639.       #RESULT-14400 CONNECT 14400 
  1640.  
  1641.       #RESULT-14400 CONNECT 38400 
  1642.  
  1643.       #RESULT-14400 CONNECT 57600 
  1644.  
  1645.       #NO-DIALTONE NO DIALTONE 
  1646.  
  1647.       #NO-DIALTONE NO CONNECT 
  1648.  
  1649.       #NO-CARRIER NO CARRIER 
  1650.  
  1651.       #OK OK 
  1652.  
  1653.       #NO-CARRIER ERROR 
  1654.  
  1655.       #NO-CARRIER VOICE 
  1656.  
  1657.       #BUSY BUSY 
  1658.  
  1659.       #RING RING 
  1660.  
  1661.       The format  is <code> <modem result code>, the two paramters are
  1662.  separated  by  a space.  Every possible result is not defined so this
  1663.  example  has  multiple  uses of the same <code> for different connect
  1664.  speeds.   You  can  create this file with any editor and it can be as
  1665.  large  as  needed.  There are two options for the `CTDL' command line
  1666.  to  make  the  creation and maintenance of this file simpler.  `+CID'
  1667.  and  `+RESULTS'  which  record  the  modem  results codes in the file
  1668.  `DEBUG.SYS'.   By  adding  `+RESULT'  to the `CTDL' command line, the
  1669.  BBS  will  record  any results codes into the `DEBUG.SYS' file.  If a
  1670.  result  code  is recorded that was not found in the RESULTS.SYS file,
  1671.  it  will  be  put  in  the  file with the message "FAILURE to find in
  1672.  RESULTS.SYS:"  followed  by  the  new results code.  You just add the
  1673.  data to the RESULTS.SYS file with the approrpiate <code> field.  
  1674. 12.17. DISCARD        
  1675.  
  1676.       This file  is  the  default  file that will be used for messages
  1677.  that  are  duplicates,  rejected because of decency(`BADWORDS.SYS' or
  1678.  `BADPEOPLE.SYS').   Citadel saves the discards here so you can review
  1679.  them(just  incase  there is problem).  This file will be found in the
  1680.  `#HOMEAREA'.  
  1681. 12.18. CTDLCNFG.SYS        
  1682.  
  1683.       This file  is the basic configuration information for setting up
  1684.  the  BBS.   The  text lines in this file are processed by `CONFG' and
  1685.  the  CTDLTABL.SYS  file is created.  This is the file you should edit
  1686.  to make adjustments to the BBS.  
  1687.  
  1688.  
  1689.